# 用户设定 
# 
# 如果需要，调整下面的东西。 BIN 是目标的可执行文件名， LIBS 
# 是一个需要连接的程序包列表（例如 alleg, stdcx, iostr 等等）。当然你 
# 可以在 make 的命令行覆盖它们，你愿意就没问题。 
# 
 
BIN := ../bin/learnmore 
#LIBS := -L`pg_config --libdir` -lpq

CC := gcc
 
# 现在来改变任何你想改动的隐含规则中的变量，例如 
 
CFLAGS := -Wall #常用
CFLAGS += -ggdb #常用
#CFLAGS += -O6 #常用
#CFLAGS += -W -Wextra #额外警告信息.
#CFLAGS += -Wshadow #当一个局部变量遮盖住了另一个局部变量，或者全局变量时，给出警告。
#CFLAGS += -Wpointer-arith #对函数指针或者void *类型的指针进行算术操作时给出警告。
#CFLAGS += -Winline #如果某函数不能内联，编译器都将发出警告。
#CFLAGS += -Wunreachable-code #如果编译器探测到永远不会执行到的代码，就给出警告。
#CFLAGS += -Wundef #当一个没有定义的符号出现在 #if 中时，给出警告。
#CFLAGS += -Wredundant-decls #如果在同一个可见域内某定义多次声明，编译器就发出警告.
#CFLAGS += -Wcast-align #一旦某个指针类型强制转换导致目标所需的地址对齐增加时，编译器就发出警告。
CFLAGS += -std=c99 #指明使用标准 C++98 作为标准来编译程序。
#CFLAGS += -Wctor-dtor-privacy #当一个类没有用时给出警告。
#CFLAGS +=  -Werror #把警告当作错误。出现任何警告就放弃编译。
CFLAGS += -DUSER_LOGOUT
 
CFLAGS += -I.

CFLAGS += -I`pg_config --includedir`

CFLAGS += -I../../include

# 下面先检查你的 djgpp 命令目录下有没有 rm 命令，如果没有，我们使用 
# del 命令来代替，但有可能给我们 'File not found' 这个错误信息，这没 
# 什么大碍。如果你不是用 DOS ，把它设定成一个删文件而不废话的命令。 
# （其实这一步在 UNIX 类的系统上是多余的，只是方便 DOS 用户。 UNIX 
# 用户可以删除这５行命令。） 

RM-F := rm -f 

 
# 从这里开始，你应该不需要改动任何东西。 
 
#选出所有*.c、*.cc文件 
SOURCE := $(wildcard ./*.c) 

#将SOURCE中的扩展名都变为*.o 
OBJS := $(patsubst %.c,%.o,$(SOURCE)) 

#将SOURCE中的扩展名都变为*.d 
DEPS := $(patsubst %.o,%.d,$(OBJS)) 

#指出还未生成的*.d文件 
MISSING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS)) 

#指出还未处理头文件并成*.d的源文件假定以*.c或*.cc结尾 
MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.c,$(MISSING_DEPS))) 

#从源码文件 .c 或 .cpp 中生成的*.d 的文件 
CPPFLAGS += -MD 
.PHONY : everything deps objs clean veryclean rebuild 
 
everything : $(BIN) 
 
deps : $(DEPS) 
 
objs : $(OBJS) 
 
clean : 
	@$(RM-F) $(OBJS) 
	@$(RM-F) $(DEPS) 
 
veryclean: clean 
	@$(RM-F) $(BIN) 
 
rebuild: veryclean everything 
 
ifneq ($(MISSING_DEPS),) 
$(MISSING_DEPS) : 
#把相应的.o文件从磁盘上删除，从而使得 make 重建它。因为 CPPFLAGS 指定了 -MD ， 它的.d 文件也被重新产生。 
	@$(RM-F) $(patsubst %.d,%.o,$@) 
endif 
 
-include $(DEPS) 
 
$(BIN) : $(OBJS) 
	$(CC) $(CFLAGS) -o $(BIN) $(OBJS) $(LIBS) 
 
